Use PImpl idiom to hide Format and Filter headers from users of Vecs, FilterVecs...
authortsteven4 <13596209+tsteven4@users.noreply.github.com>
Tue, 1 Mar 2022 13:40:32 +0000 (06:40 -0700)
committerGitHub <noreply@github.com>
Tue, 1 Mar 2022 13:40:32 +0000 (06:40 -0700)
commit25acbdf78c0f43a7c6d284736f5ca7249efe5a89
tree4f3957870d15530b177c67b576691d82f4e80924
parent6b01f277e6ac2d54ab6292a15ad895c82446d99b
Use PImpl idiom to hide Format and Filter headers from users of Vecs, FilterVecs. (#854)

* use pimpl to hide vec implementation of formats.

* use PIMPL for filter_vecs.

* sort vecs and filter_vecs include files.

* workaround memory leak issues with pimpl vecs, filter_vecs.

with some compilers sanitize address and valgrind reported errors.
The number of errors varied with compiler/platform.
Valgrind and sanitize address found different errors as well.
MacOS with clang 13 ran error free.
Linux with gcc9 and clang 10 showed multiple errors.
The errors detected were related to the destruction of the Format
and Filter instances.

* move ctors/dtors back to h files.

* catch nuke_format up with vecs.
filter_vecs.cc
filter_vecs.h
tools/nuke_format
vecs.cc
vecs.h